#pragma once

#include "IMesh.h"
#include "BoundingVolume.h"
#include <d3d9.h>

class CGraphicsController;

struct CLaserVertex
{
public:
   CLaserVertex(float x, float y, float z, DWORD emissive) 
      : m_coords(x, y, z), m_emissive(emissive) 
   {}


   D3DXVECTOR3 m_coords;
   DWORD m_emissive;

   static DWORD FVF;
};

class LaserMesh : public IMesh
{
private:
   IDirect3DDevice9& m_d3Device;
   IDirect3DVertexBuffer9* m_vertexBuffer;
   IDirect3DIndexBuffer9* m_indexBuffer;
   AABoundingBox m_boundingBox;

public:
   LaserMesh(CGraphicsController& graphicsController);
   ~LaserMesh(void);

   void render();

   const AABoundingBox& getModelSpaceBoundingBox() const {return m_boundingBox;}
};
